/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */


import java.io.FileWriter;
import java.io.PrintWriter;
import java.util.Collections;
import java.util.Vector;

/**
 *
  */
public class Seccion {


String numeroSeccion;
Profesor profesor;
Vector<Estudiante> estudiantes;

public Seccion(String numeroSeccion )
{
 this.numeroSeccion = numeroSeccion;
 estudiantes = new Vector<Estudiante>();
}

public void AsignarProfesor(Profesor profesor)
{
 this.profesor = profesor;
 System.out.println("Profesor asignado a la seccion:");
 System.out.println("===============================");
 System.out.println();
 System.out.println("Nombre:  "+profesor.getNombre());
 System.out.println("Apellido:"+profesor.getApellido());

}


public void InscribirEstrudiante(Estudiante estudiante)

{
    boolean existe;
    existe = false;
    for(int i=0;i<estudiantes.size();i++)
    {
     if (estudiantes.elementAt(i).getCedula().equals(estudiante.getCedula()))
     {
      existe = true;
      break;
     }
    }

  if (existe== false)
  {
  estudiantes.add(estudiante);
   System.out.println("El estudiante ha sido inscrito con exito!");
  }
  else
  {
  System.out.println("El estudiante ya existe");
  }
}

public void RetirarEstudiante(String cedula)
    {

    boolean existe;
    existe = false;

    for(int i =0; i<estudiantes.size();i++)
    {
      if(estudiantes.elementAt(i).getCedula().equals(cedula))
      	{
       estudiantes.remove(i);
        System.out.println("El estudiante fue removido con exito");
        existe = true;
       break;
      }
    }

    if (existe == false)
    {
      System.out.println("El estudiante no pudo ser removido porque no existe");
    }


}

public void BuscarEstudiante(String cedula)
    {

    boolean existe;
    existe = false;

    for(int i =0; i<estudiantes.size();i++)
    {
      if(estudiantes.get(i).getCedula().equals(cedula))
      {
        System.out.println("Resultado de la busqueda del estudiante");
        System.out.println("=======================================");
        System.out.println("nombre: "+estudiantes.get(i).getNombre()+" " + estudiantes.get(i).getApellido());
        existe = true;
       break;
      }
    }

    if (existe == false)
    {
      System.out.println("El estudiante no existe");
    }
}

public void AplicarEvaluaciones()
    {
   for (int i=0;i<estudiantes.size();i++)
   {
    estudiantes.elementAt(i).PresentarEvaluacion();
   }

    profesor.EvaluarEstudiantes(estudiantes);
      System.out.println("Los estudiantes han presentado exitosamente");
}

public void ListarEstudiantesCedula()
        {
	
    int numeroi;
    int numeroj;
   for (int i = 0; i < estudiantes.size() - 1; ++i)
   {
   for (int j = i + 1; j < estudiantes.size(); ++j)
    {
	   
       numeroi = Integer.parseInt(estudiantes.elementAt(i).getCedula());
       numeroj = Integer.parseInt(estudiantes.elementAt(j).getCedula());
     if( numeroi > numeroj)
     {
      Collections.swap(estudiantes,i,j);
     }
    }

   }


    FileWriter fichero = null;
        PrintWriter pw = null;
        try
        {
            fichero = new FileWriter("ListarCedula.txt");
            pw = new PrintWriter(fichero);
            pw.println("Listado de persona ordenados por cedula");
            pw.println("=======================================");
            pw.println("");
            pw.println("Nombre     Apellido       Cedula");

            for (int i = 0; i < estudiantes.size(); i++)
                pw.println(estudiantes.elementAt(i).getNombre() +" "+ estudiantes.elementAt(i).getApellido()+" "+ estudiantes.elementAt(i).getCedula());

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
           try {
           // Nuevamente aprovechamos el finally para
           // asegurarnos que se cierra el fichero.
           if (null != fichero)
              fichero.close();
           } catch (Exception e2) {
              e2.printStackTrace();
           }
        }
        
        System.out.println("Listado de personas ordenado por cedula");
        System.out.println("=======================================");
        System.out.println("");
        System.out.println("Nombre      Apellido      Cedula");
        
        for (int i = 0; i < estudiantes.size(); i++)
        	System.out.println(estudiantes.elementAt(i).getNombre() + " " + estudiantes.elementAt(i).getApellido() + " " + estudiantes.elementAt(i).getCedula());
        	
        	
        	
        	

}


public void ListarEstudiantesNota()
        {
    int numeroi;
    int numeroj;

   for (int i = 0; i < estudiantes.size() - 1; ++i)
   {
   for (int j = i + 1; j < estudiantes.size(); ++j)
    {
       numeroi = estudiantes.elementAt(i).getNotaFinal();
       numeroj = estudiantes.elementAt(j).getNotaFinal();
     if( numeroi > numeroj)
     {
      Collections.swap(estudiantes,i,j);
     }
    }
   }


    FileWriter fichero = null;
        PrintWriter pw = null;
        try
        {
            fichero = new FileWriter("ListarNotaFinal.txt");
            pw = new PrintWriter(fichero);
            pw.println("Listado de persona ordenados por Nota final");
            pw.println("=======================================");
            pw.println("");
            pw.println("Nombre     Apellido       Cedula   Nota Final");

            for (int i = 0; i < estudiantes.size(); i++)
                pw.println(estudiantes.elementAt(i).getNombre() +" "+ estudiantes.elementAt(i).getApellido()+" "+ estudiantes.elementAt(i).getCedula()+" "+ estudiantes.elementAt(i).getNotaFinal());

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
           try {
           // Nuevamente aprovechamos el finally para
           // asegurarnos que se cierra el fichero.
           if (null != fichero)
              fichero.close();
           } catch (Exception e2) {
              e2.printStackTrace();
           }
        }

}

public void ListarAprobados()
        {


    FileWriter fichero = null;
        PrintWriter pw = null;
        try
        {
            fichero = new FileWriter("ListaAprobados.txt");
            pw = new PrintWriter(fichero);
            pw.println("Listado de persona Aprobados");
            pw.println("=======================================");
            pw.println("");
            pw.println("Nombre     Apellido       Cedula    Nota Final");

            for (int i = 0; i < estudiantes.size(); i++)
            {
               if(estudiantes.elementAt(i).getNotaFinal()>=10)
                pw.println(estudiantes.elementAt(i).getNombre() +" "+ estudiantes.elementAt(i).getApellido()+" "+ estudiantes.elementAt(i).getCedula()+" "+ estudiantes.elementAt(i).getNotaFinal());
            }

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
           try {
           // Nuevamente aprovechamos el finally para
           // asegurarnos que se cierra el fichero.
           if (null != fichero)
              fichero.close();
           } catch (Exception e2) {
              e2.printStackTrace();
           }
        }

}

public void ListarReprobados()
        {


    FileWriter fichero = null;
        PrintWriter pw = null;
        try
        {
            fichero = new FileWriter("ListaReprobados.txt");
            pw = new PrintWriter(fichero);
            pw.println("Listado de persona Reprobados");
            pw.println("=======================================");
            pw.println("");
            pw.println("Nombre     Apellido       Cedula    Nota Final");

            for (int i = 0; i < estudiantes.size(); i++)
            {
               if(estudiantes.elementAt(i).getNotaFinal()<10)
                pw.println(estudiantes.elementAt(i).getNombre() +" "+ estudiantes.elementAt(i).getApellido()+" "+ estudiantes.elementAt(i).getCedula()+" "+ estudiantes.elementAt(i).getNotaFinal());
            }

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
           try {
           // Nuevamente aprovechamos el finally para
           // asegurarnos que se cierra el fichero.
           if (null != fichero)
              fichero.close();
           } catch (Exception e2) {
              e2.printStackTrace();
           }
        }

}




    public String getNumeroSeccion() {
        return numeroSeccion;
    }

    public void setNumeroSeccion(String numeroSeccion) {
        this.numeroSeccion = numeroSeccion;
    }


public void ListaPromedio()
        {


    FileWriter fichero = null;
        PrintWriter pw = null;
        try
        {
            fichero = new FileWriter("Promedio.txt");
            pw = new PrintWriter(fichero);
            pw.println("Promedio de notas");
            pw.println("=======================================");
            pw.println("");
            int acumulador;
            acumulador=0;
            for (int i = 0; i < estudiantes.size(); i++)
            {
              acumulador+= estudiantes.elementAt(i).getNotaFinal();
            }
            acumulador = acumulador / estudiantes.size();
            pw.println(acumulador);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
           try {
           // Nuevamente aprovechamos el finally para
           // asegurarnos que se cierra el fichero.
           if (null != fichero)
              fichero.close();
           } catch (Exception e2) {
              e2.printStackTrace();
           }
        }

}



} // llave de fin